// 定义Human类作为基类
class Human {
    protected String name;
    protected int age;
    protected String gender;
    protected String school;

    public Human(String name, int age, String gender, String school) {
        this.name = name;
        this.age = age;
        this.gender = gender;
        this.school = school;
    }

    // 定义抽象方法，由子类去具体实现自我介绍逻辑
    public abstract void introduce();
}

// 普通青年类，继承自Human类
class OrdinaryYouth extends Human {
    private String job;

    public OrdinaryYouth(String name, int age, String gender, String school, String job) {
        super(name, age, gender, school);
        this.job = job;
    }

    @Override
    public void introduce() {
        System.out.println("我叫" + name + "，今年" + age + "岁，性别" + gender + "，毕业于" + school + "，现在从事" + job + "工作。");
    }
}

// 文艺青年类，继承自Human类
class LiteraryYouth extends Human {
    private String masterpiece;
    private String dream;

    public LiteraryYouth(String name, int age, String gender, String school, String masterpiece, String dream) {
        super(name, age, gender, school);
        this.masterpiece = masterpiece;
        this.dream = dream;
    }

    @Override
    public void introduce() {
        System.out.println("我叫" + name + "，今年" + age + "岁，性别" + gender + "，毕业于" + school + "，我的代表作是《" + masterpiece + "》，我的梦想是" + dream + "。");
    }
}

// 测试类，包含main方法
public class YouthTest {
    public static void main(String[] args) {
        OrdinaryYouth ordinaryYouth = new OrdinaryYouth("张三", 25, "男", "XX大学", "程序员");
        LiteraryYouth literaryYouth = new LiteraryYouth("李四", 23, "女", "YY大学", "《诗篇》", "成为作家");

        ordinaryYouth.introduce();
        literaryYouth.introduce();
    }
}